有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java正则表达式模式在Linux下不起作用(Amazon Beanstalk)

我有一个java正则表达式模式,它在Mac OSX中的Tomcat7下工作得非常好,但是在Amazon Linux(在Amazon Elastic Beanstalk上使用)下,它永远都不匹配

以下是模式:

(\d\.)(([^\d\s])([a-z/\s]*))

下面是一些文本示例:

  1.AAAA/BBBBBB 

以下是java代码:

Pattern pattern = Pattern.compile(PATTERN, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
    //....
}

我不明白在这个问题上有什么平台差异。有人吗

已编辑

更多信息:相同。war文件,在我的Windows下,Mac OS平台工作得很好,但在亚马逊Beanstalk和Ubuntu Linux中没有。 我认为@study是对的,可能是因为OpenJDK,但我现在在windows下,现在无法测试它

下面是测试它的代码: https://gist.github.com/edpichler/6766187


共 (1) 个答案

  1. # 1 楼答案

    我不认为Tomcat版本会导致不同的结果,所以唯一的区别是JRE版本

    在elastic beanstalk tomcat 7 x64中,您使用的是OpenJDK 1.6.0_24

    [ec2-user@ip-10-121-5-162 ~]$ java -version
    java version "1.6.0_24"
    OpenJDK Runtime Environment (IcedTea6 1.11.4) (amazon-52.1.11.4.46.amzn1-x86_64)
    OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
    

    在OSX10.8.5(OSX2013-004和10.6更新版)中,您使用的是Oracle JDK 1.6.051

    server:bin study$ java -version
    java version "1.6.0_51"
    Java(TM) SE Runtime Environment (build 1.6.0_51-b11-457-11M4509)
    Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-457, mixed mode)